package com.monster.valid.annotation;

import com.monster.utils.TimeUtils;
import com.monster.valid.validated.TimeValidator;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * 时间格式校验
 *
 * @author kuang
 */
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = {TimeValidator.class})
public @interface ValidTime {
    String name() default "";

    /**
     * 提示信息
     *
     * @return 默认提示信息
     */
    String message() default "";

    /**
     * 校验分组
     *
     * @return 分组的class数组
     */
    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    /**
     * 是否可以为空
     *
     * @return true/false
     */
    boolean isNull() default true;

    /**
     * 时间格式
     *
     * @return 格式字符串
     */
    String format() default TimeUtils.yyyyMMdd;

}
